package com.engine.cn.base;

/**
 * 利润低于或等于10万元时，奖金可提10%；
 * 利润高于10万元，低于20万元时，低于10万元的部分按10%提成，高于10万元的部分，可提成7.5%；
 * 20万到40万之间时，高于20万元的部分，可提成5%；
 * 40万到60万之间时高于40万元的部分，可提成3%；
 * 60万到100万之间时，高于60万元的部分，可提成1.5%；
 * 高于100万元时，超过100万元的部分按1%提成。
 * 请计算提成
 */
public class Bonus {
    public static double calculate(double profit) {
        if (profit > 100) {
            return (profit - 100) * 0.01 + (100 - 60) * 0.015 + (60 - 40) * 0.03 + (40 - 20) * 0.05 + (20 - 10) * 0.075 + 10 * 0.1;
        } else if (60 < profit) {
            return (profit - 60) * 0.015 + (60 - 40) * 0.03 + (40 - 20) * 0.05 + (20 - 10) * 0.075 + 10 * 0.1;
        } else if (40 < profit) {
            return (profit - 40) * 0.03 + (40 - 20) * 0.05 + (20 - 10) * 0.075 + 10 * 0.1;
        } else if (20 < profit) {
            return (profit - 20) * 0.05 + (20 - 10) * 0.075 + 10 * 0.1;
        } else if (10 < profit) {
            return (profit - 10) * 0.075 + 10 * 0.1;
        } else if (profit < 10) {
            return profit * 0.1;
        }
        return 0;
    }

    public static double calculate2(double profit) {
        double sum = 0;
        double baffle = profit;
        if (profit > 100) {
            sum += (baffle - 100) * 0.01;
            baffle = 100;
        }

        if (profit > 60) {
            sum += (baffle - 60) * 0.015;
            baffle = 60;
        }

        if (profit > 40) {
            sum += (baffle - 40) * 0.03;
            baffle = 40;
        }

        if (profit > 20) {
            sum += (baffle - 20) * 0.05;
            baffle = 20;
        }

        if (profit > 10) {
            sum += (baffle - 10) * 0.075;
            baffle = 10;
        }

        //注意这里需要全部符号一致，如果是设置成 profit<10，则大于10万时，则取不到该部分的值
        if (profit > 0) {
            sum += baffle * 0.1;
        }
        return sum;
    }


    public static void main(String[] args) {
        double calculate = calculate(120);
        double calculate2 = calculate2(120);
        System.out.println("calculate==>" + calculate);
        System.out.println("calculate2==>" + calculate2);
    }
}
